Organizationally unique identifier

An Organizationally Unique Identifier (OUI) is a 24-bit number that is purchased from the Institute of Electrical and Electronics Engineers, Incorporated (IEEE) Registration Authority. This identifier uniquely identifies a vendor, manufacturer, or other organization (referred to by the IEEE as the “assignee”) globally or worldwide and effectively reserves a block of each possible type of derivative identifier (such as MAC addresses, group addresses, Subnetwork Access Protocol protocol identifiers, etc.) for the exclusive use of the assignee. The OUI is subsequently used by the assignee to create particular instances of these identifiers for various purposes, such as the identification of a particular piece of equipment (e.g., a network interface controller (NIC)) or the identification of a network protocol, and for use in various computer hardware products, including MAC addresses for Ethernet and other NICs (network interface cards), World Wide Names for Fibre Channel host bus adapters, and other Fibre Channel and Serial Attached SCSI devices.[1] [2]

In MAC addresses, the OUI is combined with a 24-bit number (assigned by the owner or 'assignee' of the OUI) to form the address. The first three octets of the address are the OUI.

Contents

Representational and Formatting Conventions / Standards (IEEE 802-2001)

The following terms are defined (either implicitly or explicitly) in IEEE Standard 802-2001 for use in referring to the various representations and formats of OUIs and the identifiers that may be created using them.[3]

Hexadecimal Representation

“The representation of a sequence of octet values in which the values of the individual octets are displayed in order from left to right, with each octet value represented as a two-digit hexadecimal numeral, and with the resulting pairs of hexadecimal digits separated by hyphens. The order of the hexadecimal digits in each pair, and the mapping between the hexadecimal digits and the bits of the octet value, are derived by interpreting the bits of the octet value as a binary numeral using the normal mathematical rules for digit significance.”[3] (See hexadecimal).

Canonical Format

“The format of a MAC data frame in which the octets of any MAC addresses conveyed in the MAC user data field have the same bit ordering as in the Hexadecimal Representation.”[3] (See MAC data frame, MAC addresses)

Significance Order

This appears from the context of the IEEE Standard 802-2001 to be another term for the 'Hexadecimal Representation' – i.e., “by interpreting the bits of the octet value as a binary numeral using the normal mathematical rules for digit significance.”[3]

Bit-Reversed Representation

“The representation of a sequence of octet values in which the values of the individual octets are displayed in order from left to right, with each octet value represented as a two-digit hexadecimal numeral, and with the resulting pairs of hexadecimal digits separated by colons. The order of the hexadecimal digits in each pair, and the mapping between the hexadecimal digits and the bits of the octet value, are derived by reversing the order of the bits in the octet value and interpreting the resulting bit sequence as a binary numeral using the normal mathematical rules for digit significance.”[3]

Note: It is interesting to note that the bit-reversed representation corresponds to the convention of transmitting the least-significant-bit of each byte first in serial data communications.

Noncanonical Representation

“The format of a MAC data frame in which the octets of MAC addresses conveyed in the MAC user data field have the same bit ordering as in the Bit-reversed representation.”[3]

Transmission Order

The order in which an octet or a sequence of octets is transmitted over the transmission medium – this order normally corresponds to the bit-reversed representation.

Example:

An OUI consisting of the hexadecimal digits ACDE4816 would be represented as follows:

Hexadecimal / Canonical format:

AC-DE-48
|            OUI                 |
| Octet 0  | Octet 1  | Octet 2  |
|  A     C |  D     E |  4     8 |
|1010  1100|1101  1110|0100  1000|

Bit-reversed / Noncanonical format:

35:7B:12
|            OUI                 |
| Octet 0  | Octet 1  | Octet 2  |
|  3     5 |  7     B |  1     2 |
|0011  0101|0111  1011|0001  0010|

Potential for Confusion in Token Ring Settings

Ethernet users are used to seeing canonical form, such as in the output of the ifconfig command. Canonical form is the intended standard.

However, since 802.3 (Ethernet) and 802.4 (Token Bus) send the bits over the wire with least significant bit first, while 802.5 (Token Ring) and 802.6 (FDDI) send the bits over the wire with most significant bit first, confusion may arise where an OUI in the latter scenario is represented with bits reversed from the canonical representation. So for instance, an OUI whose canonical form is ACDE48 could be seen written as 357B12 if translation is done improperly or inconsistently. The latter form (Bit-Reversed or Noncanonical representation), may also be referred to in the literature as "MSB format", "IBM format", or "Token Ring format" for this reason. RFC2469 explains the problem in more detail.

Format

The OUI is normally discussed and represented as a set of octets in hexadecimal notation separated by dashes (i.e., FF-FF-FF) or as a set of octets separated by colons in bit-reversed notation (i.e., FF:FF:FF).[1]

The two least-significant-bits of the second nibble of the first octet of the hexadecimal representation (i.e., the two least significant bits of the first octet) of the OUI are reserved as flag bits for some protocols (e.g., 'M' bit and 'X' bit), flags to indicate whether the address is part of an individual (unicast) or group (multicast) address block (e.g., Individual / Group [I / G] bit or Unicast / Multicast [U / M] bit), flags to indicate whether an address is universally or locally administered (e.g., Universal / Local [U / L] bit), etc., and should not contain the values 1,2,3,5,6,7,9,a, b,d, e, or f, unless these values reflect the true meaning of these flag bits – if the organization that owns the OUI does set one of these bits when creating an identifier, then the value of the second nibble of the first octet changes accordingly in representations of the OUI (e.g., if the hexadecimal value of the second nibble of the first octet is 'C' and the least-significant-bit is set, then the value becomes 'D').

Note: “Three-octet values occupying the same fields as OUIs can occupy, but with the next-to-LSB of the first octet set to 1, are locally assigned and have no relationship to the IEEE-assigned values...”.[1]

Example:

The following figure shows the position of these bits in significance order:

|            OUI                 |
| Octet 0  | Octet 1  | Octet 2  |
|  nibble  |  nibble  |  nibble  |
|  __||__  |  __||__  |  __||__  |
| |      | | |      | | |      | |
| 0  ||  1 | 2  ||  3 | 4  ||  5 |
|bits||bits|bits||bits|bits||bits|
|7654||3210|7654||3210|7654||3210|
|||||  |||||||||  |||||||||  |||||
|  A     C |  D     E |  4     8 |
|1010  1100|1101  1110|0100  1000|
 |    |  ||                 |   |
 |    |  ||                 |   least-significant-bit of OUI
 |    |  ||                 least-significant-byte of OUI
 |    |  |least-significant-bit of first octet of OUI = I/G or M bit
 |    |  next-to-least-significant-bit of first octet of OUI = U/L or X bit
 |    most-significant-byte of OUI
 most-significant-bit of OUI

Note: The OUI of AC-DE-48 is used for illustrative purposes only and this information applies regardless of the actual value of the OUI.

Notes:

  1. The IEEE also refers to the OUI as 'company_id' when the OUI is written as a base 16 number (i.e., as a hexadecimal number with no dashes or colons separating the octets of the OUI).[1]
  2. In the following, 'F' and 'h' represent any hexadecimal number.
  3. In the following, 'c' represents the digits of the 'company_id', and 'e' represents the digits of the extension identifier supplied by the organization to whom the OUI is registered.

Types of Identifiers

32-bit Context Dependent Identifier (CDI-32)

The CDI-32 is an identifier that is formed by concatenating the 24-bit OUI with an 8-bit extension identifier that is assigned by the organization that purchased the OUI – the resulting identifier is generally represented as a set of octets separated by dashes (hexadecimal notation) or colons (bit-reversed notation) as in FF-FF-FF-FF or FF:FF:FF:FF, as a string of 4 bytes as in {FF,FF,FF,FF}, or as a base 16 number as in FFFFFFFF16.[4]

40-bit Context Dependent Identifier (CDI-40)

The CDI-40 is an identifier that is formed by concatenating the 24-bit OUI with a 16-bit extension or by concatenating a 36-bit OUI-36 with a 4-bit extension.[4][5] In either case, the extension is assigned by the organization that purchased the OUI. The resulting identifier is generally represented as a set of octets separated by dashes (hexadecimal notation) or colons (bit-reversed notation) as in FF-FF-FF-FF-FF or FF:FF:FF:FF:FF, as a string of 5 bytes as in {FF,FF,FF,FF,FF}, or as a base 16 number as in FFFFFFFFFF16.

48-bit Media Access Control Identifier (MAC-48)

The IEEE now considers the label MAC-48 to be an obsolete term which was previously used to refer to a specific type of EUI-48 identifier used to address hardware interfaces (e.g., Network Interface Controllers and other network hardware) within existing IEEE 802 based networking applications and should not be used in the future.[6] Instead, the term EUI-48 should be used by manufacturers and others in the field for this purpose – i.e., this identifier is identical to the EUI-48 identifier and is an obsolete label for the same identifier, although some distinction is still made when encapsulating MAC-48 and EUI-48 identifiers within EUI-64 identifiers.[7]

48-bit Extended Unique Identifier (EUI-48)

The EUI-48 is an identifier that is formed by concatenating the 24-bit OUI with a 24-bit extension identifier that is assigned by the organization that purchased the OUI – the resulting identifier is generally represented as a set of octets separated by dashes (hexadecimal notation) or colons (bit-reversed notation) as in FF-FF-FF-FF-FF-FF or FF:FF:FF:FF:FF:FF, as a string of 6 bytes as in {FF,FF,FF,FF,FF,FF}, or as a base 16 number as in FFFFFFFFFFFF16.[8]

60-bit Extended Unique Identifier (EUI-60)

The EUI-60 is an identifier that is formed by concatenating the 24-bit OUI with a 36-bit extension identifier that is assigned by the organization that purchased the OUI – the resulting identifier is generally represented by a string of 15 nibbles, as a base 16 number as in FFFFFFFFFFFFFFF16, or as FF-FF-FF:F.F.F.F.F.F.F.F.F as an EUI-64 value.[9]

Note: This identifier was previously used as the world wide name (WWN) identifier within some storage systems. Its use is now considered deprecated by the IEEE and the EUI-64 identifier should be used in the future for this and all other purposes for which the EUI-60 was previously used. Some of the storage systems in which an OUI based variant was used are Fibre Channel, and Serial Attached SCSI (SAS).[6]

64-bit Extended Unique Identifier (EUI-64)

The EUI-64 is an identifier that is formed by concatenating the 24-bit OUI with a 40-bit extension identifier that is assigned by the organization that purchased the OUI – the resulting identifier is generally represented as a set of octets separated by dashes (hexadecimal notation) or colons (bit-reversed notation) as in FF-FF-FF-FF-FF-FF-FF-FF or FF:FF:FF:FF:FF:FF:FF:FF, as a string of 8 bytes as in {FF,FF,FF,FF,FF,FF,FF,FF}, or as a base 16 number as in FFFFFFFFFFFFFFFF16.[7]

Note: According to the IEEE guidelines, the first four digits of the organizationally assigned identifier (i.e., the first four digits of the extension identifier) portion of an EUI-64 “shall not be FFFE16 or FFFF16” (i.e., EUI-64 identifiers of the form ccccccFFFEeeeeee and ccccccFFFFeeeeee are not allowed) – this is to support the encapsulation of EUI-48 and MAC-48 values into EUI-64 values.

Other Identifiers

IPv6 uses a 64-bit Modified Extended Unique Identifier (Modified EUI-64) in the lower half of some IPv6 addresses. A Modified EUI-64 is an EUI-64 with the U/L bit inverted.[10]

There are other identifiers that may be formed using the OUI but those listed above are the most commonly used.

Encapsulating

Other identifiers, such as MAC-48 and EUI-48 values, can be contained within a larger identifier or 'container', such as EUI-64, by creating the larger identifier through a process of combining the smaller identifier with specified values placed in specified bit-positions within the larger identifier – this process is known as 'encapsulation' and is provided for the purpose of easing the transition from MAC-48 and EUI-48 to EUI-64 and to provide a mechanism for the conversion of MAC-48 and EUI-48 identifiers to EUI-64 in such a way that duplicate or conflicting values are avoided.[7]

Encapsulation of MAC-48 within EUI-64 Example:

Assuming that an organization has registered the OUI of AC-DE-48 and that the organization has created the MAC-48 value of AC-DE-48-23-45-67 by concatenating the extension identifier 23-45-67, this MAC-48 identifier has the following binary transmission order:

|            OUI             |     extension identifier   | field
|  1st   |   2nd   |  3rd    |   4th   |   5th   |   6th  | octet
| C   A  |  E   D  |  8   4  |  3   2  |  5   4  |  7   6 | hex
0011 0101 0111 1011 0001 0010 1100 0100 1010 0010 1110 0110 bits
|       | |       | |       | |       | |       | |       |
lsb   msb lsb   msb lsb   msb lsb   msb lsb   msb lsb   msb

The same MAC-48 identifier after encapsulation within an EUI-64 has the following transmission order:

|           OUI           |    MAC label    |   extension identifier  | field 
|  1st  |  2nd   |  3rd   |  4th   |  5th   |  6th   |  7th   |  8th  | order
| C  A  |  E  D  |  8  4  |  F  F  |  F  F  |  3  2  |  5  4  |  7  6 | hex
00110101 01111011 00010010 11111111 11111111 11000100 10100100 11100110 bits
|      | |      | |      | |      | |      | |      | |      | |      |
lsb  msb lsb  msb lsb  msb lsb  msb lsb  msb lsb  msb lsb  msb lsb  msb

The same MAC-48 identifier after encapsulation within an EUI-64 has the following significance order:

|           OUI           |    MAC label    |   extension identifier  | field 
|  AC   |   DE   |   48   |   FF   |   FF   |   23   |   45   |   67  | hex
10101100 11011110 01001000 11111111 11111111 00100011 01000101 01100111 bits
|  |                                                               |  |
|  most-significant-byte                      least-significant-byte  |
most-significant-bit                              least-significant-bit

Encapsulation of EUI-48 within EUI-64 Example:

Assuming that an organization has registered the OUI of AC-DE-48 and that the organization has created the EUI-48 value of AC-DE-48-23-45-67 by concatenating the extension identifier 23-45-67, this EUI-48 identifier has the following format in significance order:

|        company_id       |   extension identifier  | field 
|  AC   |   DE   |   48   |   23   |   45   |   67  | hex
10101100 11011110 01001000 00100011 01000101 01100111 bits
|  |                                             |  |
|  most-significant-byte    least-significant-byte  |
most-significant-bit            least-significant-bit

The same EUI-48 identifier after encapsulation within an EUI-64 has the following format in significance order:

|        company_id       |    EUI label    |   extension identifier  | field 
|  AC   |   DE   |   48   |   FF   |   FE   |   23   |   45   |   67  | hex
10101100 11011110 01001000 11111111 11111110 00100011 01000101 01100111 bits
|  |                                                               |  |
|  most-significant-byte                      least-significant-byte  |
most-significant-bit                              least-significant-bit

Encapsulation of MAC-48 or EUI-48 within Modified EUI-64 Example:

In the encapsulation within a Modified EUI-64 a MAC-48 is treated as an EUI-48 and the U/L bit is inverted.[10] Assuming that an organization has registered the OUI of AC-DE-48 and that the organization has created the MAC-48 or EUI-48 value of AC-DE-48-23-45-67 by concatenating the extension identifier 23-45-67, this MAC-48 or EUI-48 identifier has the following format in significance order:

|        company_id       |   extension identifier  | field 
|  AC   |   DE   |   48   |   23   |   45   |   67  | hex
10101100 11011110 01001000 00100011 01000101 01100111 bits
|  |                                             |  |
|  most-significant-byte    least-significant-byte  |
most-significant-bit            least-significant-bit

The same MAC-48 or EUI-48 identifier after encapsulation within a Modified EUI-64 has the following format in significance order:

|        company_id       |    EUI label    |   extension identifier  | field 
|  AE   |   DE   |   48   |   FF   |   FE   |   23   |   45   |   67  | hex
10101110 11011110 01001000 11111111 11111110 00100011 01000101 01100111 bits
|  |                                                               |  |
|  most-significant-byte                      least-significant-byte  |
most-significant-bit                              least-significant-bit

Individual Address Block

The Individual Address Block (IAB) is a block of identifiers that is formed by concatenating a 24-bit Organizationally Unique Identifier (OUI) that is owned by the IEEE Registration Authority with an additional 12-bit extension identifier that is assigned by the IEEE Registration Authority and then reserving an additional 12 bits for use by the assignee. The resulting 48-bit identifier uniquely identifies the assignee of the IAB and provides 4096 unique EUI-48 numbers for use by the organization that purchased the IAB. The assignee may create unique identifiers by concatenating a 12-bit extension identifier that is assigned by the organization that purchases the IAB in the bit positions occupied by the 12 additional bits mentioned previously.[6] The purpose of the IAB is to allow organizations to purchase smaller blocks of identifiers.[1]

The IEEE Registration Authority distinguishes between IABs and OUI-36 values. Both are 36-bit values which may be used to generate EUI-48 values, but IABs may not be used to generate EUI-64 values.[6]

Example of EUI-48 created within an IAB: An EUI-48 identifier is formed by combining the 36-bit IEEE assigned IAB base value with a 12-bit extension identifier assigned by the organization – e.g., if the IEEE assigned IAB base value is FF-FF-FF-FF-F0-00 and the 12-bit extension identifier is hhh16, then the EUI-48 value generated by combining these two numbers is FF-FF-FF-FF-Fh-hh.

Note:There are also IAB based CDI-40 sequences that are formed by combining the 36-bit IEEE assigned IAB base value with the 4-bit extension identifier assigned by the organization – e.g., if the IEEE assigned IAB base value is FF-FF-FF-FF-F0-00 and the 4-bit extension identifier is 0h16, then the CDI-40 value generated by combining these two numbers is FF-FF-FF-FF-Fh.

Compare to

See also

References

  1. ^ a b c d e The Institute of Electrical and Electronics Engineers, Incorporated (IEEE) (1963-01-01). Registration authority. http://standards.ieee.org/develop/regauth/. 
  2. ^ Groth, David; Toby Skandier (2005). 'Network+ Study Guide, Fourth Edition'. Sybex, Inc.. ISBN 0-7821-4406-3. 
  3. ^ a b c d e f IEEE Std 802-2001. The Institute of Electrical and Electronics Engineers, Inc. (IEEE). 2002-02-07. ISBN 0-7381-2941-0. http://standards.ieee.org/getieee802/download/802-2001.pdf. Retrieved 2011-09-08. 
  4. ^ a b "Guidelines for use of a 32-bit or 40-bit Context Dependent Identifier (CDI-32 and CDI-40)". IEEE-SA. http://standards.ieee.org/develop/regauth/tut/cdi32.pdf. Retrieved 2011-09-08. 
  5. ^ IEEE-RA. "36-Bit Organizationally Unique Identifier (OUI-36)". http://standards.ieee.org/develop/regauth/oui36/index.html. Retrieved 2011-09-08. 
  6. ^ a b c d "Guidelines for use of the 24-bit Organizationally Unique Identifiers (OUI)". IEEE-SA. http://standards.ieee.org/develop/regauth/tut/eui.pdf. Retrieved 2011-09-07. 
  7. ^ a b c "Guidelines for 64-bit Global Identifier (EUI-64)". IEEE-SA. http://standards.ieee.org/develop/regauth/tut/eui64.pdf. Retrieved 2011-09-07. 
  8. ^ "Guidelines for use of a 48-bit Extended Unique Identifier (EUI-48)". IEEE-SA. http://standards.ieee.org/develop/regauth/tut/eui48.pdf. Retrieved 2011-09-07. 
  9. ^ "Guidelines for use of a 60-bit Extended Unique Identifier (EUI-60)". IEEE-SA. http://standards.ieee.org/develop/regauth/tut/eui60.pdf. Retrieved 2011-09-08. 
  10. ^ a b "IANA Considerations and IETF Protocol Usage for IEEE 802 Parameters". IETF. RFC 5342. 

External links